package com.shp.dao;

import com.shp.pojo.ShopCartItem;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 操作购物车
 * @author ZWL
 * @Version: 1.0
 * @create: 2020/2/26 1:58
 */
public interface ShopCartDao {

    /**
     * 根据用户的id
     * @param userId 用户id
     * @return 查询用户购物车的商品数量
     */
    public int getShopCartItemSizeByUserId(@Param("id") Integer userId);

    /**
     * 在shopcart表插入一条数据
     * @param shopCartItem 购物车商品信息
     * @return 影响行数
     */
    public int insert(@Param("item") ShopCartItem shopCartItem);

    /**
     * 查询商品是否已经在购物车
     * @param goodsId 商品id
     * @param userId 用户id
     * @return 返回值大于0，代表存在；否则不存在
     */
    public int isExistShopCart(@Param("id")Integer goodsId,@Param("userId") Integer userId);

    /**
     * 查询用户的购物车信息
     * @param id 用户id
     * @return List<ShopCartItem>
     */
    public List<ShopCartItem> getShopCartByUserId(@Param("id")Integer id);

    /**
     * 根据用户的id，查询该用户的购物车的商品数量
     * @param userId 用户id
     * @return 商品数量
     */
    public int getShopCartItemSize(@Param("id")Integer userId);

    /**
     * 根据商品id，移除购物车里的指定商品,
     * 及设置商品的移出购物车的时间
     * @param id 商品id
     * @param endTime 移储时间
     * @return 影响行数
     */
    public int removeShopCartItemByGoodsId(@Param("id") Integer id,@Param("endTime") String endTime);

    /**
     * 根据用户id，清空他的购物车
     * @param userId 用户id
     * @param endTime 清空的时间
     * @return 影响行数
     */
    public int emptyByUserId(@Param("id") Integer userId,@Param("endTime")String endTime);
}
